/**
 * 生成唯一的别名
 * @param baseName 基础名称
 * @param existingAliases 已存在的别名列表
 * @returns 唯一的别名
 */
export function generateUniqueAlias(baseName: string, existingAliases: string[] = []): string {
  // 清理基础名称，只保留字母、数字、下划线和连字符
  let cleanName = baseName.replace(/[^a-zA-Z0-9_-]/g, '').toLowerCase();
  
  // 如果清理后的名称为空，使用默认名称
  if (!cleanName) {
    cleanName = 'news';
  }
  
  // 检查是否已存在
  if (!existingAliases.includes(cleanName)) {
    return cleanName;
  }
  
  // 如果存在，添加数字后缀
  let counter = 1;
  let newAlias = `${cleanName}-${counter}`;
  
  while (existingAliases.includes(newAlias)) {
    counter++;
    newAlias = `${cleanName}-${counter}`;
  }
  
  return newAlias;
}

/**
 * 验证别名格式
 * @param alias 别名
 * @returns 是否有效
 */
export function validateAlias(alias: string): boolean {
  const pattern = /^[a-zA-Z0-9_-]+$/;
  return pattern.test(alias);
} 